home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
MACD 5
/
MACD 5.bin
/
workbench
/
boot
/
czesc_2
/
onekeyii
/
src
/
wintext.c
< prev
next >
Wrap
C/C++ Source or Header
|
1992-11-22
|
2KB
|
83 lines
/*
* wintext.h
*
* Routines for font-independent window-text system, which allows
* writing of text based on character positions.
* Still being tweaked.
*
* MWS 3/92.
*/
#include <exec/types.h>
#include <graphics/gfxmacros.h>
#include <graphics/gfxbase.h>
#include <intuition/intuition.h>
#include <proto/graphics.h>
#include <proto/intuition.h>
#include <string.h>
#include "wintext.h"
BOOL
InitWinTextInfo(WINTEXTINFO * wti) /* for Workbench screen at moment */
{
struct Screen screen;
struct TextFont *tf;
if (GetScreenData(&screen, sizeof(screen), WBENCHSCREEN, NULL))
{
wti->tattr.ta_Name = GfxBase->DefaultFont->tf_Message.mn_Node.ln_Name;
wti->tattr.ta_YSize = GfxBase->DefaultFont->tf_YSize;
if (tf = OpenFont(&wti->tattr)) /* have a peek */
{
wti->font_x = tf->tf_XSize;
wti->font_y = tf->tf_YSize;
wti->font_baseline = tf->tf_Baseline;
/* no dragbar, so modified toffset */
wti->toffset = screen.WBorTop + 1/*+ tf->tf_YSize*/;
wti->loffset = screen.WBorLeft + 2;
wti->roffset = screen.WBorRight + 2;
wti->boffset = screen.WBorBottom;
CloseFont(tf); /* should be set to rastport of window */
return TRUE;
}
}
return FALSE;
}
/****** UNUSED AT MOMENT
void RenderWinTexts(WINTEXTINFO *info, WINTEXT *wt)
{
struct RastPort *rp;
while (wt)
{
rp = info->window->RPort;
SetAPen(rp, wt->pen);
SetDrMd(rp, wt->mode);
Move(rp, info->loffset + wt->lpos*info->font_x,
info->toffset + wt->tpos*info->font_y + info->font_baseline);
Text(rp, wt->text, strlen(wt->text));
wt = wt->next;
}
}
******/
void
WinText(WINTEXTINFO * info, char *text,
UWORD lpos, UWORD tpos, UWORD pen, UWORD mode)
{
struct RastPort *rp;
rp = info->window->RPort;
SetAPen(rp, pen);
SetDrMd(rp, mode);
Move(rp, info->loffset + lpos * info->font_x,
info->toffset + tpos * info->font_y + info->font_baseline);
Text(rp, text, strlen(text));
}